iT邦幫忙

2025 iThome 鐵人賽

DAY 7
1

大家好,鐵人賽第七天!

經過前一天的理論洗禮,我們已經對 AI Agent 的「思考-行動」循環有了深刻的理解。今天,我們不再紙上談兵,而是要親手在 n8n 中打造出第一個能被 AI Agent 呼叫的「工具 (Tool)」——一個 MCP 計算機!

這將是我們首次將 MCP 的概念應用到實際工作流中。讓我們開始吧!

一、MCP 計算機工具的工作原理

我們最終會建立兩個 n8n 工作流:

  1. 「計算機工具」工作流 (Tool Workflow): 這是一個獨立的工作流,它只做一件事:接收一個數學表達式,然後計算出結果並回傳。這個工作流本身就是一個「MCP Server」提供的 tool
  2. 「主流程」工作流 (Main Workflow): 這是我們的 AI Agent 所在的地方。它會接收使用者的指令,判斷是否需要呼叫「計算機工具」,然後將工具回傳的結果呈現給使用者。

核心概念:

  • Tool 節點作為觸發器: 它會將整個工作流包裝成一個可被其他 AI Agent 呼叫的「服務」。
  • AI Agent 節點作為客戶端: 它會根據語意判斷,自動去呼叫掛載的工具。

二、實戰:建立「計算機工具」工作流

首先,我們來建立這個能執行計算的後端「服務」。

步驟一:新建工作流並設定 Tool 觸發器

  1. 在 n8n 主畫面上,點擊左上角的 + 號,選擇 New Workflow,建立一個全新的工作流。

  2. 將預設的 Start 節點刪除。

  3. 點擊 Add first node,在搜尋框中輸入 MCP Server Trigger,選擇 MCP Server Trigger 節點作為觸發器。

  4. 再來新增 tools 選擇 Calculator 工具,如下圖

    截圖 2025-09-02 上午11.55.24

  5. 設定 MCP Server Trigger ,如下圖

截圖 2025-09-02 上午11.55.41

這邊就是 Test URL 是在畫面中按下測試才可以被呼叫到的, Production URL 是在主畫面中選擇上方的 Active 就可以一直被呼叫了!

步驟二:儲存並啟用「工具」工作流

  1. 給這個工作流取一個有意義的名字,例如:Calculator Tool
  2. 點擊右上角的 Save 按鈕。
  3. 最重要的一步: 點擊右上角的開關,將 Inactive 切換為 Active只有啟用的工作流才能被其他 AI Agent 呼叫!

至此,我們的「計算機工具」已經準備就緒,就像一個微型的 MCP Server 服務,隨時待命。

三、實戰:建立「主流程」工作流並讓 AI Agent 呼叫工具

現在,我們來建立一個主工作流,讓 AI Agent 使用我們剛剛建立的工具。

步驟一:新建主工作流並設定 When chat message received 觸發器

  1. 再次建立一個全新的 n8n 工作流。

  2. 將預設的 Start 節點刪除。

  3. 點擊 Add first node,在搜尋框中輸入 chat message,選擇 When chat message received 節點作為觸發器。

    如 Image 1 所示,這是我們主流程的起點。

步驟二:新增 AI Agent 節點

  1. When chat message received 節點後面,點擊 + 號,新增一個 AI Agent 節點。

步驟三:設定 AI Agent 節點

  1. 點擊 AI Agent 節點,在右側的設定面板中。

  2. Language Model (LLM): 點擊 Model 欄位下的 Add Credential,配置你已有的 AI 模型憑證,例如 Google Gemini Chat Model

    小提示: 如果你還沒有設定過 AI 模型,你可以選擇 Google Gemini Chat Model,然後按照指示新增一個 Google Gemini 的 API Key 憑證。

截圖 2025-09-02 上午11.56.27

  1. Tools (工具): 這是最關鍵的部分!

    • 找到 Tools 欄位,點擊 Add Tool
    • Workflow 的下拉選單中,你會找到我們剛剛建立並啟用的 MCP Client 工作流。選擇它!如下圖

截圖 2025-09-02 上午11.56.06

步驟四:儲存並啟用「主流程」工作流

  1. 給這個工作流取名,例如:MCP Demo
  2. 點擊右上角的 Save 按鈕。
  3. 啟用工作流: 點擊右上角的開關,將 Inactive 切換為 Active

截圖 2025-09-02 上午11.55.03

四、終極測試:與你的 AI Agent 對話!

一切都準備就緒!

  1. MCP Demo 主工作流的畫布下方,你會看到一個紅色的 Open chat 按鈕。點擊它。

  2. 一個聊天視窗會彈出。現在,請輸入你的指令:

    100 + 100 = ?
    

    或者:

    幫我計算一下 5 乘以 8 再加上 12 等於多少?
    

    甚至你可以試試:

    如果我今天賺了 150 塊,然後明天又賺了 200 塊,請問我總共賺了多少錢?
    

    你會看到 AI Agent 不僅僅回答問題,它在背景會:

    • 理解你的問題需要「計算」。
    • 找到並呼叫我們掛載的 Calculator Tool
    • 將計算工具回傳的結果,作為最終答案輸出給你。

    AI Agent 成功使用計算機工具並回覆。

五、切入細節!查看 log

深入剖析 AI Agent 的「思考」與「行動」:從 n8n 執行日誌看懂背後機制

當我們向 AI Agent 提出「100 + 100 = ?」這個問題,並讓它使用我們的計算機工具時,n8n 的執行日誌會鉅細靡遺地記錄下 AI Agent 每一個決策和動作。這些日誌是理解 AI Agent 內部如何「思考」和「行動」的黃金線索。

讓我們從 AI Agent 節點下的不同子步驟開始,一步步解讀整個流程。

第一階段:AI Agent 的初步思考與工具決策 (由第一個 Google Gemini Chat Model 執行)

截圖 2025-09-02 下午2.53.01

首先,當使用者在聊天視窗中輸入 100 + 100 = ? 時,這個指令會傳遞給 AI Agent 節點。AI Agent 的第一個子步驟就是啟用其核心的語言模型來進行初步的思考。

  • 日誌位置: AI Agent 節點下的第一個 Google Gemini Chat Model

  • Input (輸入 - Image 3):

    • 我們會看到輸入給 Gemini 模型的內容,大致會是這樣一個「系統提示 (System Prompt)」:
      System: choice right tool based on user question:
      Human: 100 + 100 = ?
      
    • 這條輸入告訴 Gemini:「嘿,現在有一個人類問題,請你判斷是否需要選擇一個合適的工具來回答它。」
  • Output (輸出 - Image 1 的右側 OUTPUT):

    • LLM 經過思考後,決定要使用工具。它的輸出會包含一個 functionCall 的指令,這是 LLM 告訴 n8n:「我決定要呼叫這個工具」的方式。
      {
        "response": {
          "generations": [
            {
              "text": "", // 可能沒有直接的文字回覆
              "tool_calls": [ // 這裡就是 LLM 的「決策」
                {
                  "function": {
                    "name": "calculator", // 決定呼叫名為 "calculator" 的工具
                    "args": {
                      "expression": "100 + 100" // 傳遞 "100 + 100" 作為 expression 參數
                    }
                  }
                }
              ],
              "finishReason": "STOP"
            }
          ],
          "token_usage": { /* ... */ }
        }
      }
      
    • 這表示 Gemini 模型已經判斷出這個問題是數學計算,並且智慧地將 100 + 100 提取出來,作為 calculator 工具的 expression 參數。

第二階段:MCP Client 實際執行工具呼叫 (由 MCP Client 執行)

截圖 2025-09-02 下午2.54.29

一旦第一個 Gemini 模型決定要呼叫工具,AI Agent 節點就會啟用 MCP Client 這個子步驟來執行這個決策。

  • 日誌位置: AI Agent 節點下的 MCP Client

  • Input (輸入 - Image 4 的左側 INPUT):

    • MCP Client 的輸入,就是上一步 Gemini 模型產生的 tool_calls 決策。它會清楚地指示 MCP Client
      • query: 原始問題 100 + 100 = ?
      • tool.name: calculator (要呼叫的工具名稱)
      • tool.input: 100 + 100 (傳遞給工具的參數)
      • tool.description: (工具的描述,幫助 Client 理解其功能)
  • Output (輸出 - Image 4 的右側 OUTPUT):

    • MCP Client 成功呼叫了我們的 Calculator Tool 工作流,並等待其回傳結果。
    • 一旦 Calculator Tool 計算完成並回傳 200MCP Client 會將這個結果捕獲並作為自己的輸出:
      {
        "response": [
          {
            "type": "text",
            "text": "200" // 計算機工具回傳的最終結果
          }
        ]
      }
      
    • 這一步是 MCP 協議「工具呼叫 (tools/call)」最核心的體現。MCP Client 充當了主流程 (Host) 與工具服務 (Server) 之間的橋樑。

第三階段:AI Agent 觀察結果並生成最終答案 (由第二個 Google Gemini Chat Model 執行)

截圖 2025-09-02 下午2.55.09

MCP Client 成功取得工具的執行結果後,這個結果會再次回傳給 AI Agent,讓它的大腦(第二個 Google Gemini Chat Model)進行最終的處理。

  • 日誌位置: AI Agent 節點下的第二個 Google Gemini Chat Model

  • Input (輸入 - Image 5 的左側 INPUT):

    • 這次 Gemini 模型的輸入會包含更多上下文:原始問題、LLM 自己的工具呼叫決策、以及最重要的是工具回傳的結果
      System: choice right tool based on user question:
      Human: 100 + 100 = ?
      AI: model, [{"functionCall":{"name":"calculator","args":{"input":"100 + 100"}}}]
      Tool: {"type":"text","text":"200"} // 這裡就是 MCP Client 傳回的工具結果
      
    • AI Agent 現在知道:「我問了工具 calculator 關於 100 + 100,它回答了 200。」
  • Output (輸出 - Image 2 的右側 OUTPUT / Image 5 的右側 OUTPUT):

    • LLM 觀察到工具回傳的結果 200,判斷這就是問題的最終答案,並將其作為最終的文字回覆輸出:
      {
        "response": {
          "generations": [
            {
              "text": "200", // 最終呈現給使用者的答案
              "finishReason": "STOP"
            }
          ],
          "token_usage": { /* ... */ }
        }
      }
      
    • 這個 200 就是最終顯示在聊天視窗中的答案。

從日誌看見的 AI Agent 完整循環

這三張 log 截圖,清晰地為我們揭示了 AI Agent 如何透過一個動態的、多步驟的「思考 (LLM) → 行動 (MCP Client/Tools) → 觀察 (結果) → 再次思考 (LLM) → 輸出答案」的循環模式來解決問題。

這不再是單純的文字生成,而是一個具備「問題解決能力」的數位代理人,它懂得:

  1. 理解意圖: 將人類自然語言的問題解析成工具可用的格式。
  2. 決策工具: 根據問題選擇最合適的工具。
  3. 執行工具: 透過 MCP Client 實際呼叫外部服務。
  4. 整合結果: 將工具的輸出納入考量,生成最終答案。

理解了這些日誌背後的邏輯,你就能更深入地掌握 AI Agent 的強大之處,以及 MCP 在其中扮演的關鍵「連接」角色。

六、今日總結

今天我們完成了一項非常重要的里程碑:

  1. 親手打造了一個獨立的「MCP 計算機工具」工作流。
  2. 學習了如何在主工作流中配置 AI Agent 節點,並掛載這個工具。
  3. 透過對話,見證了 AI Agent 如何自主地判斷並呼叫工具來解決問題。
  4. 透過觀察 log ,更了解 MCP的流程和 AI Agent的協作。

這正是 MCP 協定的力量所在——它允許 AI Agent 透過標準化的方式,發現並運用各種外部服務所提供的「能力」。你所建立的 Calculator Tool,就是一個實實在在的 MCP Server。

明天,我們將把這個概念擴展到更複雜的場景:串接外部天氣 API,打造一個能獲取即時天氣資訊的工具!


上一篇
Day 6 - AI Agent 節點介紹
下一篇
Day 8 - 使用 n8n 打造一個天氣查詢 MCP Server
系列文
三十天解鎖上下文超能力:MCP 實戰9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
justin_log
iT邦新手 5 級 ‧ 2025-09-21 21:11:52

請問他可以算微積分嗎

onedream iT邦新手 5 級 ‧ 2025-09-22 00:13:55 檢舉

他可以算工程數學的話 就更好了

我要留言

立即登入留言